var entidad_id;
var entidad_tipo;
$(function () {
    $('#objetivo-grid> table> tbody>tr').live('click', function () {
        var fila = $(this).children('td')[0];
        var checkbox = $(fila).children(':checkbox');
        cambioEstadoObjetivo($(checkbox).val())

    });
});

/******************************Funciones de Entidades Principales*********************************/
function AjaxActualizarActividades()
{
    updateAtivites();
}
/**
 * @author Alex Yepez <ayepez@tradesystem.com.ec>
 * @param {type} lista
 * actualiza un determinada lista y el calendario
 */
function actualizarInformacion(lista)
{
    if (lista == '#sms-grid' || lista == '#llamada-grid') {
        lista = '#tarea-grid';
    }
    var listaActual = lista.replace('#', '');
    if (lista != "#evento-grid")
    {
        if ($(lista).length == 0)
        {
            window.location.reload();
        }
        else
        {
            $.fn.yiiGridView.update(listaActual);
        }
    } else {
        AjaxActualizarActividades();
    }
    $('#calendar').fullCalendar('refetchEvents');

}
//Acciónes de calendario
/**
 * @author Alex Yepez <ayepez@tradesystem.com.ec>
 * @param {type} event
 * @param {type} accion
 * carga de modal view desde el calendario
 */
function AjaxModalEntidad(event, accion)
{
    var control = event.className;
    var Module_Model = control.toString().split("_");
    var url = Module_Model[0] + '/' + Module_Model[1] + '/' + accion + '/id/' + Module_Model[2];
    viewModal(url);
}
/******************************Funciones Ajax*****************************************************/
/**
 * 
 * @param {type} Formulario
 * guarda los _form_modal por ajax para contacto, tarea, oportunidad, evento y cobranza
 */
function AjaxAtualizacionInformacion(Formulario)
{
    BloquearBotonesModal(Formulario);
    if (Formulario != "#contacto-form") {
        AjaxGestionModal(Formulario, function (list) {
            actualizarInformacion(list);
        });
    }else{
        AjaxGestionModalContacto(Formulario, function (list) {
            actualizarInformacion(list);
        });
    }
}
//////
function AjaxPrueba(id) {
    $("#mainModal").modal("hide");
    entidad_id = '23';
    entidad_tipo = 'CONTACTO';
    viewModal("crm/contacto/crearDatosContacto?id=" + id, function () {
        maskAttributes();
    }, 1);
}
///////
function AjaxGestionModalContacto($form, CallBack) {
    var form = $($form);
    var settings = form.data('settings');
    settings.submitting = true;
    $.fn.yiiactiveform.validate(form, function (messages) {

        $.each(messages, function () {
//            console.log(this);
        });
        if ($.isEmptyObject(messages)) {
            $.each(settings.attributes, function () {
                $.fn.yiiactiveform.updateInput(this, messages, form);
            });
            AjaxGuardarModalContacto(true, $form, CallBack);
        }
        else {
            settings = form.data('settings'),
                    $.each(settings.attributes, function () {
                        $.fn.yiiactiveform.updateInput(this, messages, form);
                    });
            DesBloquearBotonesModal($form, 'Enviar', 'AjaxAtualizacionInformacion');
        }
    });
}

/**
 * @author Alexis Hidalgo
 * @param {Cadena} Formulario
 * Guarda el contenido del modal de Contacto
 */

function AjaxGuardarModalContacto(verificador, Formulario, callBack)
{
    if (verificador)
    {
        var listaActualizar = Formulario.split('-');
        listaActualizar = listaActualizar[0] + '-grid';
        $.ajax({
            type: "POST",
            dataType: 'json',
            url: $(Formulario).attr('action'),
            data: $(Formulario).serialize(),
            beforeSend: function (xhr) {
            },
            success: function (data) {
                if (data.success) {
                    entidad_id = data.id;
                    entidad_tipo = data.entidad_tipo;
                    $("#mainModal").modal("hide");
//                    $("#mainBigModal").modal("hide");
                    viewModal("crm/contacto/crearDatosContacto?id=" + entidad_id, function () {
                        maskAttributes();
                    }, 1);
                    callBack(listaActualizar, data);

                } else {

                    DesBloquearBotonesModal(Formulario);
                    bootbox.alert(data);
                }
            }
        });
    }

}
/**
 * 
 * @param {type} id
 * edita el rating de cuenta por ajax
 */
function rating(id) {

    var cont = 0;
    $('#rating_' + id + ' div').each(function (index, elemento) {

        if ($(elemento).hasClass('star-rating-on'))
        {
            cont++;
            $(elemento).parent().removeClass('star-rating-on');//star-rating-hover
            $(elemento).parent().addClass('star-rating-hover');//star-rating-hover
        }
    });

    $.ajax({
        type: "POST",
        url: 'rating',
        data: {id: id, cont: cont}

    });
}

/**
 * Guarda Nota con archivos.
 * @autor Armando Maldonado <amaldonado@tradesystem.com.ec>
 * @param {type} url
 * @returns {undefined}
 */
function guardarObjetivo(url) {
    $.ajax({
        type: "POST",
        url: url,
        dataType: 'json',
        data: $('#tarea-objetivo-form').serialize(),
        success: function (data) {
            if (data.success) {
                $('#TareaObjetivo_objetivo').val('');
                $.fn.yiiGridView.update('objetivo-grid');
                $('#progresoObjetivo > div').attr('style', 'width:' + data.porcentaje_no_realizadas + '%');
            } else {
                bootbox.alert(data.error);
            }
        }
    });
}
/**
 * @autor Armando Maldonado <amaldonado@tradesystem.com.ec>
 * @param {type} id
 * @param {type} estado
 * @returns {undefined}
 */
function cambioEstadoObjetivo(id) {
    $.ajax({
        type: "POST",
        dataType: 'json',
        url: baseUrl + 'tareas/tarea/ajaxCambioEstadoObjetivo',
        data: {id: id},
        success: function (data) {
//            console.log(data.porcentaje_no_realizadas);
//            $.fn.yiiGridView.update('objetivo-grid');
            $('#progresoObjetivo > div').attr('style', 'width:' + data.porcentaje_no_realizadas + '%');
        }
    });
}
/**
 * @author Alex Yepez <ayepez@tradesystem.com.ec>
 * Funcion de instrucciones porteriores al envio de mail en incidencia
 * @param {type} data
 * @returns {undefined}
 */
function afterSendMail(data) {
    var listaActualizar = "#incidencia-grid";
    actualizarInformacion(listaActualizar);
    $("#mainBigModal").modal('hide');
}


